﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Configuration;
using System.Data;
using Infragistics.Windows.DataPresenter;
//using System.Windows.Forms;

namespace ReclutamientoCosea
{
	/// <summary>
	/// Interaction logic for usrEntreCosea.xaml
	/// </summary>
    public partial class usrEntreCosea : UserControl
    {

        private System.Windows.Forms.Timer timerTrack;

        #region "Variables"

        public event CerroVentana SeCerroVentana;
        private static AppSettingsReader settings = new AppSettingsReader();
        private string _idUsuario = "";
        private bool _datosCargados = false;
        private DatosFamiliaresEntreCosea _datosFamiliares = new DatosFamiliaresEntreCosea();
        private HijosEntreCosea _hijos = new HijosEntreCosea();
        private HermanosEntreCosea _hermanos = new HermanosEntreCosea();
        private ExperienciaLaboralEntreCosea _experiencia = new ExperienciaLaboralEntreCosea();
        private ReferenciasEntreCosea _referencia = new ReferenciasEntreCosea ();
        private int _renglon = 0;
        private int _accion = 0;
        private string _idEntreCosea = "";
        private bool _modoEntrevista = false;

        #endregion

        #region "Propiedades"

        public string IdEntreCosea
        {
            get { return _idEntreCosea; }
            set { _idEntreCosea = value; }
        }
        

        public string IdUsuario
        {
            get { return _idUsuario; }
            set { _idUsuario = value; }
        }
        private string _idCandidato = "";

        public string IdCandidato
        {
            get { return _idCandidato; }
            set { _idCandidato = value; }
        }

        #endregion

        #region "Constructor"

        public usrEntreCosea()
        {
            this.InitializeComponent();            
            this.GotFocus += new RoutedEventHandler(usrEntreCosea_GotFocus);
            this.Loaded += new RoutedEventHandler(usrEntreCosea_Loaded);

        }

        #endregion

        #region "Métodos"

        void usrEntreCosea_Loaded(object sender, RoutedEventArgs e)
        {
            obtenValores();
            CargaCombos();
            CargaGrids();
            EntrevistaCosea ec = new EntrevistaCosea();
            ec= ObtenEntrevista();
            if (ec.identrecosea != "N/A")
            {
                lblModo.Content = "Modo: [ Actualización ]";
                ColocaDatos(ec);
            }
            else
            {
                lblModo.Content = "Modo: [ Nuevo ]";
                _modoEntrevista = true;
            }

            timerTrack = new System.Windows.Forms.Timer();
            timerTrack.Interval = 60000;
            timerTrack.Tick += new EventHandler(timerTrack_Tick);
            timerTrack.Enabled = true;
            
        }

        void timerTrack_Tick(object sender, EventArgs e)
        {
            guardaEntrevista();
            lblMensaje.Content = "Se autoguardo a las: " +  DateTime.Now.ToShortTimeString();
        }

        private void usrEntreCosea_GotFocus(object sender, RoutedEventArgs e)
        {
            //if (!_datosCargados)
            //{
            //    obtenValores();
            //}
        }



        private void obtenValores()
        { 
                bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
                string strSQL = "";
                string strSQLFinal = "";
                try
                {
                    strSQL += "exec dbo.spObtenUsuarioID '{0}'; ";
                    strSQL += "exec dbo.spObtenCandidatoID '{1}'";
                    strSQLFinal = string.Format(strSQL, _idUsuario, _idCandidato);

                    bd.bdConecta();
                    DataSet ds = bd.dataSetConsulta(strSQLFinal, "basicos");

                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        lblUsuario.Content = "Usuario: " + ds.Tables[0].Rows[0][2].ToString().Trim();
                    }

                    if (ds.Tables[1].Rows.Count > 0)
                    {

                        string nombre = ds.Tables[1].Rows[0]["nombre1"].ToString().Trim() + " " +
                            ds.Tables[1].Rows[0]["nombre2"].ToString().Trim() + " " +
                            ds.Tables[1].Rows[0]["apellido1"].ToString().Trim() + " " +
                            ds.Tables[1].Rows[0]["apellido2"].ToString().Trim();
                        lblCandidato.Content = nombre;
                    }
                    _datosCargados = true;

                }

                catch (Exception ex)
                {
                    wExcepcionesSistema wError = new wExcepcionesSistema();
                    wError.txtExcepcion.Text = ex.Message;
                    wError.ShowDialog();
                }
                finally
                {
                    bd.bdCierra();
                }
        }

        private void CargaCombos()
        {
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            string strSQL = "";
            try
            {
                bd.bdConecta();
                strSQL = "select * from RespuestasRapidas; ";
                strSQL += "select * from EstadoCivil; ";
                strSQL += "select * from EstadoSalud; ";
                strSQL += "select * from vivecon; ";
                strSQL += "select * from tipodroga ";

                DataSet ds = bd.dataSetConsulta(strSQL, "rr");
                               
                
                cboPrimaria.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboPrimaria.ItemsProvider.DisplayMemberPath = "valor";
                cboPrimaria.ItemsProvider.ValuePath = "valor";

                cboSecundaria.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboSecundaria.ItemsProvider.DisplayMemberPath = "valor";
                cboSecundaria.ItemsProvider.ValuePath = "valor";

                cboTecnico.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboTecnico.ItemsProvider.DisplayMemberPath = "valor";
                cboTecnico.ItemsProvider.ValuePath = "valor";

                cboComercial.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboComercial.ItemsProvider.DisplayMemberPath = "valor";
                cboComercial.ItemsProvider.ValuePath = "valor";

                cboTitulado.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboTitulado.ItemsProvider.DisplayMemberPath = "valor";
                cboTitulado.ItemsProvider.ValuePath = "valor";

                cboPrepa.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboPrepa.ItemsProvider.DisplayMemberPath = "valor";
                cboPrepa.ItemsProvider.ValuePath = "valor";

                cboProfesional.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboProfesional.ItemsProvider.DisplayMemberPath = "valor";
                cboProfesional.ItemsProvider.ValuePath = "valor";

                cboMaestria.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboMaestria.ItemsProvider.DisplayMemberPath = "valor";
                cboMaestria.ItemsProvider.ValuePath = "valor";

                cboOtros.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboOtros.ItemsProvider.DisplayMemberPath = "valor";
                cboOtros.ItemsProvider.ValuePath = "valor";

                cboPasante.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboPasante.ItemsProvider.DisplayMemberPath = "valor";
                cboPasante.ItemsProvider.ValuePath = "valor";

                cboTrunco.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboTrunco.ItemsProvider.DisplayMemberPath = "valor";
                cboTrunco.ItemsProvider.ValuePath = "valor";

                cboEstudia_.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboEstudia_.ItemsProvider.DisplayMemberPath = "valor";
                cboEstudia_.ItemsProvider.ValuePath = "valor";

                cboDispViajar.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboDispViajar.ItemsProvider.DisplayMemberPath = "valor";
                cboDispViajar.ItemsProvider.ValuePath = "valor";
                

                ///

                cboHaTrabajadoPuesto.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboHaTrabajadoPuesto.ItemsProvider.DisplayMemberPath = "valor";
                cboHaTrabajadoPuesto.ItemsProvider.ValuePath = "valor";

                cboTrabajadoEmpresaSimilar.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboTrabajadoEmpresaSimilar.ItemsProvider.DisplayMemberPath = "valor";
                cboTrabajadoEmpresaSimilar.ItemsProvider.ValuePath = "valor";

                cboImss.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboImss.ItemsProvider.DisplayMemberPath = "valor";
                cboImss.ItemsProvider.ValuePath = "valor";

                cboLicencia.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboLicencia.ItemsProvider.DisplayMemberPath = "valor";
                cboLicencia.ItemsProvider.ValuePath = "valor";

                cboCartilla.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboCartilla.ItemsProvider.DisplayMemberPath = "valor";
                cboCartilla.ItemsProvider.ValuePath = "valor";

                cboCasaPropia.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboCasaPropia.ItemsProvider.DisplayMemberPath = "valor";
                cboCasaPropia.ItemsProvider.ValuePath = "valor";

                cboCasaPadres.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboCasaPadres.ItemsProvider.DisplayMemberPath = "valor";
                cboCasaPadres.ItemsProvider.ValuePath = "valor";

                cboCasaPrestada.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboCasaPrestada.ItemsProvider.DisplayMemberPath = "valor";
                cboCasaPrestada.ItemsProvider.ValuePath = "valor";

                cboCasaRentada.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboCasaRentada.ItemsProvider.DisplayMemberPath = "valor";
                cboCasaRentada.ItemsProvider.ValuePath = "valor";

                cboAutomovilPropio.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboAutomovilPropio.ItemsProvider.DisplayMemberPath = "valor";
                cboAutomovilPropio.ItemsProvider.ValuePath = "valor";

                cboCredito.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboCredito.ItemsProvider.DisplayMemberPath = "valor";
                cboCredito.ItemsProvider.ValuePath = "valor";


                ///

                cboEnfermedadCronica.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboEnfermedadCronica.ItemsProvider.DisplayMemberPath = "valor";
                cboEnfermedadCronica.ItemsProvider.ValuePath = "valor";

                cboEnfermedadesImpidaTrabajar.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboEnfermedadesImpidaTrabajar.ItemsProvider.DisplayMemberPath = "valor";
                cboEnfermedadesImpidaTrabajar.ItemsProvider.ValuePath = "valor";

                cboEnfermedadContagiosa.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboEnfermedadContagiosa.ItemsProvider.DisplayMemberPath = "valor";
                cboEnfermedadContagiosa.ItemsProvider.ValuePath = "valor";

                cboConsumidoDrogas.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboConsumidoDrogas.ItemsProvider.DisplayMemberPath = "valor";
                cboConsumidoDrogas.ItemsProvider.ValuePath = "valor";

                cboPreguntaFinal.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboPreguntaFinal.ItemsProvider.DisplayMemberPath = "valor";
                cboPreguntaFinal.ItemsProvider.ValuePath = "valor";

                cboToma.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboToma.ItemsProvider.DisplayMemberPath = "valor";
                cboToma.ItemsProvider.ValuePath = "valor";

                cboFuma.ItemsProvider.ItemsSource = ds.Tables[0].DefaultView;
                cboFuma.ItemsProvider.DisplayMemberPath = "valor";
                cboFuma.ItemsProvider.ValuePath = "valor";


                cboTipoDroga.ItemsProvider.ItemsSource = ds.Tables[4].DefaultView;
                cboTipoDroga.ItemsProvider.DisplayMemberPath = "droga";
                cboTipoDroga.ItemsProvider.ValuePath = "droga";



                ///
                cmbEstadoCivil.ItemsProvider.ItemsSource = ds.Tables[1].DefaultView;
                cmbEstadoCivil.ItemsProvider.DisplayMemberPath = "estadocivil";
                cmbEstadoCivil.ItemsProvider.ValuePath = "idestadocivil";

                cboEdoSalud.ItemsProvider.ItemsSource = ds.Tables[2].DefaultView;
                cboEdoSalud.ItemsProvider.DisplayMemberPath = "valor";
                cboEdoSalud.ItemsProvider.ValuePath = "valor";

                cboViveCon.ItemsProvider.ItemsSource = ds.Tables[3].DefaultView;
                cboViveCon.ItemsProvider.DisplayMemberPath = "vivecon";
                cboViveCon.ItemsProvider.ValuePath = "vivecon";


            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
            finally
            {
                bd.bdCierra();
            }

        }

        private void CargaGrids()
        {
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            string strSQL = "";
            string strSQLFinal = "";
            try
            {
                strSQL += "select renglon,nombre,edad,ocupacion,vivefinado,enfermedades from DatosFamiliaresEntreCosea ";
                strSQL += "where idcandidato = '{0}' order by renglon; ";
                strSQL += "select renglon,nombre,edad  from HijosEntreCosea ";
                strSQL += "where idcandidato = '{0}' order by renglon; ";
                strSQL += "select renglon,nombre,edad,profesion,estadocivil from HermanosEntreCosea ";
                strSQL += "where idcandidato = '{0}' order by renglon; ";
                strSQL += " select [renglon],[giro]";
                strSQL += "       ,[telefono]";
                strSQL += "       ,[fechaingreso]";
                strSQL += "       ,[fechaseparacion]";
                strSQL += "       ,[puesto]";
                strSQL += "       ,[sueldo]";
                strSQL += "       ,[prestaciones]";
                strSQL += "       ,[actividades]";
                strSQL += "       ,[logros]";
                strSQL += "       ,[relacionjefe]";
                strSQL += "       ,[motivosalida]";
                strSQL += "       ,[nombrejefe]";
                strSQL += "       ,[puestojefe]";
                strSQL += "       ,[telefonojefe]";
                strSQL += " from ExperienciaLaboralEntreCosea ";
                strSQL += " where idcandidato = '{0}' order by renglon; ";
                strSQL += " select renglon,nombre,ocupacion,telefono,anos from ReferenciasEntreCosea ";
                strSQL += " where idcandidato = '{0}' order by renglon ";

                strSQLFinal = string.Format(strSQL, _idCandidato);              

                bd.bdConecta();

                DataSet ds = bd.dataSetConsulta(strSQLFinal, "datos");

                dgDatosFamiliares.DataSource = ds.Tables[0].DefaultView;
                dgHijos.DataSource = ds.Tables[1].DefaultView;
                dgHermanos.DataSource = ds.Tables[2].DefaultView;
                dgExperiencia.DataSource = ds.Tables[3].DefaultView;
                dgReferenciasPersonales.DataSource = ds.Tables[4].DefaultView;

            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }

            finally
            {
                bd.bdCierra();
            }
        }

        private void dgDatosFamiliares_RecordActivated(object sender, Infragistics.Windows.DataPresenter.Events.RecordActivatedEventArgs e)
        {
            try
            {
                if (e.Record is DataRecord)
                {
                    // Cast the record passed in as a DataRecord
                    DataRecord myRecord = (DataRecord)e.Record;
                    _renglon = int.Parse(myRecord.Cells[0].Value.ToString());
                    _datosFamiliares.Nombre = myRecord.Cells[1].Value.ToString();
                    _datosFamiliares.Edad = int.Parse(myRecord.Cells[2].Value.ToString());
                    _datosFamiliares.Ocupacion = myRecord.Cells[3].Value.ToString();
                    _datosFamiliares.Vive_Finado = myRecord.Cells[4].Value.ToString();
                    _datosFamiliares.Enfermedades = myRecord.Cells[5].Value.ToString();
                }
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }

        }

        private void dgDatosFamiliares_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                _accion = 2;
                wDatosFamilares wDatosFamiliares = new wDatosFamilares(0, _datosFamiliares);
                wDatosFamiliares.Title = "Datos Familiares";
                wDatosFamiliares.Renglon = _renglon;
                wDatosFamiliares.Show();
                wDatosFamiliares.CerrarVentana += (obj1,obj2) =>
                    {
                        if (obj2)
                        {
                            _datosFamiliares = (DatosFamiliaresEntreCosea)obj1;
                            guardaGrid(1);
                        }
                    };
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }

        }

        private void dgHijos_RecordActivated(object sender, Infragistics.Windows.DataPresenter.Events.RecordActivatedEventArgs e)
        {
            try
            {
                if (e.Record is DataRecord)
                {
                    // Cast the record passed in as a DataRecord
                    DataRecord myRecord = (DataRecord)e.Record;
                    _renglon = int.Parse(myRecord.Cells[0].Value.ToString());
                    _hijos.nombre = myRecord.Cells[1].Value.ToString();
                    _hijos.edad = int.Parse (myRecord.Cells[2].Value.ToString()); 

                }
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void dgHijos_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                _accion = 2;
                wDatosFamilares wDatosFamiliares = new wDatosFamilares(1,_hijos);
                wDatosFamiliares.Title = "Hijos";
                wDatosFamiliares.Renglon = _renglon;
                wDatosFamiliares.Show();
                wDatosFamiliares.CerrarVentana += (obj1,obj2) =>
                {
                    if (obj2)
                    {
                        _hijos = (HijosEntreCosea)obj1;
                        guardaGrid(2);
                    }
                };
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void dgHermanos_RecordActivated(object sender, Infragistics.Windows.DataPresenter.Events.RecordActivatedEventArgs e)
        {
            try
            {
                if (e.Record is DataRecord)
                {
                    // Cast the record passed in as a DataRecord
                    DataRecord myRecord = (DataRecord)e.Record;
                    _renglon = int.Parse(myRecord.Cells[0].Value.ToString());
                    _hermanos.Nombre  = myRecord.Cells[1].Value.ToString();
                    _hermanos.Edad = int.Parse (myRecord.Cells[2].Value.ToString());
                    _hermanos.Profesion = myRecord.Cells[3].Value.ToString();
                    _hermanos.Estado_Civil = myRecord.Cells[4].Value.ToString();
                    

                }
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void dgHermanos_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                _accion = 2;
                wDatosFamilares wDatosFamiliares = new wDatosFamilares(2, _hermanos);
                wDatosFamiliares.Title = "Hermanos";
                wDatosFamiliares.Renglon = _renglon;
                wDatosFamiliares.Show();
                wDatosFamiliares.CerrarVentana += (obj1, obj2) =>
                {
                    if (obj2)
                    {
                        _hermanos = (HermanosEntreCosea)obj1;
                        guardaGrid(3);
                    }
                };

            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void dgExperiencia_RecordActivated(object sender, Infragistics.Windows.DataPresenter.Events.RecordActivatedEventArgs e)
        {
            try
            {
                if (e.Record is DataRecord)
                {
                    // Cast the record passed in as a DataRecord
                    DataRecord myRecord = (DataRecord)e.Record;
                    _renglon = int.Parse(myRecord.Cells[0].Value.ToString());
                    _experiencia.Giro = myRecord.Cells[1].Value.ToString();
                    _experiencia.Telefono =  myRecord.Cells[2].Value.ToString();
                    _experiencia.Fecha_Ingreso = DateTime.Parse (myRecord.Cells[3].Value.ToString());
                    _experiencia.Fecha_Separacion = DateTime.Parse (myRecord.Cells[4].Value.ToString()); 
                    _experiencia.Puesto  = myRecord.Cells[5].Value.ToString();
                    _experiencia.Sueldo = myRecord.Cells[6].Value.ToString();
                    _experiencia.Prestaciones = myRecord.Cells[7].Value.ToString();
                    _experiencia.Actividades = myRecord.Cells[8].Value.ToString();
                    _experiencia.Logros =  myRecord.Cells[9].Value.ToString();
                    _experiencia.Relacion_Jefe  = myRecord.Cells[10].Value.ToString();
                    _experiencia.Motivo_Salida  = myRecord.Cells[11].Value.ToString();
                    _experiencia.Nombre_Jefe = myRecord.Cells[12].Value.ToString();
                    _experiencia.Puesto_Jefe = myRecord.Cells[13].Value.ToString();
                    _experiencia.Telefono_Jefe = myRecord.Cells[14].Value.ToString();
                }
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void dgExperiencia_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                wDatosFamilares wDatosFamiliares = new wDatosFamilares(3, _experiencia);
                wDatosFamiliares.Title = "Experiencia";
                wDatosFamiliares.Renglon = _renglon;
                wDatosFamiliares.Show();
                wDatosFamiliares.CerrarVentana += (obj1,obj2) =>
                {
                    if (obj2)
                    {
                        _experiencia = (ExperienciaLaboralEntreCosea)obj1;
                        guardaGrid(4);
                    }
                };
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void dgReferenciasPersonales_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                _accion = 2;
                wDatosFamilares wDatosFamiliares = new wDatosFamilares(4, _referencia);
                wDatosFamiliares.Title = "Referencias Personales";
                wDatosFamiliares.Renglon = _renglon;
                wDatosFamiliares.Show();
                wDatosFamiliares.CerrarVentana += (obj1,obj2) =>
                {
                    if (obj2)
                    {
                        _referencia = (ReferenciasEntreCosea)obj1;
                        guardaGrid(5);
                    }
                };
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void dgReferenciasPersonales_RecordActivated(object sender, Infragistics.Windows.DataPresenter.Events.RecordActivatedEventArgs e)
        {
            try
            {
                if (e.Record is DataRecord)
                {
                    // Cast the record passed in as a DataRecord
                    DataRecord myRecord = (DataRecord)e.Record;
                    _renglon = int.Parse(myRecord.Cells[0].Value.ToString());
                    _referencia.Nombre = myRecord.Cells[1].Value.ToString();
                    _referencia.Ocupacion = myRecord.Cells[2].Value.ToString(); 
                    _referencia.Telefono = myRecord.Cells[3].Value.ToString();
                    _referencia.Anos = myRecord.Cells[4].Value.ToString();


                }
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void agregar(int info)
        {
            string SQLBase = "";
            string SQLFinal = "";
            string SQL = "";
            try
            {
                object datos = new object ();
                string titulo = "";
                switch (info)
                {
                    case 1:
                        DatosFamiliaresEntreCosea dfc = new DatosFamiliaresEntreCosea();
                        dfc.Edad = 1;
                        //datos = new DatosFamiliaresEntreCosea();
                        datos = dfc;
                        titulo = "Datos Familiares";
                        break;
                    case 2:
                        HijosEntreCosea hec = new HijosEntreCosea();
                        hec.edad = 1;
                        //datos = new HijosEntreCosea();
                        datos = hec;
                        titulo = "Hijos";
                        break;
                    case 3:
                        HermanosEntreCosea hrec = new HermanosEntreCosea();
                        hrec.Edad = 1;
                        //datos = new HermanosEntreCosea();
                        datos = hrec;
                        titulo = "Hermanos";
                        break;                        
                    case 4:
                        ExperienciaLaboralEntreCosea expC = new ExperienciaLaboralEntreCosea();                        
                        expC.Sueldo= "0";
                        expC.Fecha_Ingreso = DateTime.Now;
                        expC.Fecha_Separacion = DateTime.Now;
                        //datos = new ExperienciaLaboralEntreCosea();
                        datos = expC;
                        //public DateTime Fecha_Ingreso { get; set; }
                        //public DateTime  Fecha_Separacion { get; set; }                        
                        titulo = "Experiencia";
                        break;
                    case 5:
                        datos = new ReferenciasEntreCosea();
                        titulo = "Referencias Personales";
                        break;
                    default:
                        break;
                }
                _renglon = 0;
                wDatosFamilares wDatosFamiliares = new wDatosFamilares((info -1), datos);
                wDatosFamiliares.Title = titulo;
                wDatosFamiliares.Renglon = _renglon;
                wDatosFamiliares.Show();
                wDatosFamiliares.CerrarVentana += (obj1, obj2) =>
                {
                    if (obj2)
                    {
                        switch (info)
                        {
                            case 1:
                                _datosFamiliares = (DatosFamiliaresEntreCosea)obj1;
                                SQL = string.Format("select max(renglon) + 1 as renglon from DatosFamiliaresEntreCosea where idcandidato = '{0}'",_idCandidato);
                                _renglon = calculaRenglonSiguiente(SQL);
                                SQLBase = "exec SPInsDatosFamiliaresEntreCosea '{0}','{1}','{2}',{3},'{4}','{5}','{6}',{7}";
                                SQLFinal = string.Format(SQLBase, _idCandidato, DateTime.Now.ToString("yyyy-MM-dd 00:00:00"),
                                    _datosFamiliares.Nombre, _datosFamiliares.Edad, _datosFamiliares.Ocupacion,
                                    _datosFamiliares.Vive_Finado, _datosFamiliares.Enfermedades, _renglon);                             
                                break;
                            case 2:
                                _hijos = (HijosEntreCosea)obj1;
                                SQL = string.Format("select max(renglon) + 1 as renglon from HijosEntreCosea where idcandidato = '{0}'", _idCandidato);
                                _renglon = calculaRenglonSiguiente(SQL);
                                SQLBase = "exec SPInsHijosEntreCosea '{0}','{1}',{2},{3}";
                                SQLFinal = string.Format(SQLBase, _idCandidato, _hijos.nombre, _hijos.edad, _renglon);
                                break;
                            case 3:
                                _hermanos = (HermanosEntreCosea)obj1;
                                SQL = string.Format("select max(renglon) + 1 as renglon from HermanosEntreCosea where idcandidato = '{0}'", _idCandidato);
                                _renglon = calculaRenglonSiguiente(SQL);
                                SQLBase = "exec SPInsHermanosEntreCosea '{0}','{1}',{2},'{3}','{4}',{5}";
                                SQLFinal = string.Format(SQLBase, _idCandidato, _hermanos.Nombre, _hermanos.Edad,
                                    _hermanos.Profesion, _hermanos.Estado_Civil, _renglon);
                                break;
                            case 4:
                                _experiencia = (ExperienciaLaboralEntreCosea)obj1;
                                SQL = string.Format("select max(renglon) + 1 as renglon from ExperienciaLaboralEntreCosea where idcandidato = '{0}'", _idCandidato);
                                _renglon = calculaRenglonSiguiente(SQL);
                                SQLBase = "exec SPInsExperienciaLaboralEntreCosea '{0}','{1}','{2}','{3}','{4}','{5}',{6},'{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}',{15}";
                                SQLFinal = string.Format(SQLBase,_idCandidato, _experiencia.Giro, _experiencia.Telefono, _experiencia.Fecha_Ingreso.ToString("yyyy-MM-dd 00:00:00"),
                                    _experiencia.Fecha_Separacion.ToString("yyyy-MM-dd 00:00:00"), _experiencia.Puesto, _experiencia.Sueldo, _experiencia.Prestaciones,
                                    _experiencia.Actividades, _experiencia.Logros, _experiencia.Relacion_Jefe, _experiencia.Motivo_Salida, _experiencia.Nombre_Jefe,
                                    _experiencia.Puesto_Jefe, _experiencia.Telefono_Jefe, _renglon);
                                break;
                            case 5:
                                _referencia = (ReferenciasEntreCosea)obj1;
                                SQL = string.Format("select max(renglon) + 1 as renglon from ReferenciasEntreCosea where idcandidato = '{0}'", _idCandidato);
                                _renglon = calculaRenglonSiguiente(SQL);
                                SQLBase = "exec SPInsReferenciasEntreCosea '{0}','{1}','{2}','{3}','{4}',{5}";
                                SQLFinal = string.Format(SQLBase,_idCandidato, _referencia.Nombre, _referencia.Ocupacion, _referencia.Telefono, _referencia.Anos, _renglon);
                                break;
                            default:
                                break;
                        }
                        ejecutaStore(SQLFinal);
                        CargaGrids();
                    }
                };
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void menos(int info)
        {
            try
            {
                if (_renglon > 0)
                {
                    string SQL = "";
                    string SQLFinal = "";
                    switch (info)
                    {
                        case 1:
                            SQL = "exec SPDltDatosFamiliaresEntreCosea '{0}',{1}";
                            break;
                        case 2:
                            SQL = "exec SPDltHijosEntreCosea '{0}',{1}";
                            break;
                        case 3:
                            SQL = "exec SPDltHermanosEntreCosea '{0}',{1}";
                            break;
                        case 4:
                            SQL = "exec SPDltExperienciaLaboralEntreCosea '{0}',{1}";
                            break;
                        case 5:
                            SQL = "exec SPDltReferenciasEntreCosea '{0}',{1}";
                            break;
                        default:
                            break;
                    }
                    SQLFinal = string.Format(SQL, _idCandidato, _renglon);
                    ejecutaStore(SQLFinal);
                    CargaGrids();
                }
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void upd(int info)
        {
            if (_renglon > 0)
            {
                switch (info)
                {
                    case 1:
                        dgDatosFamiliares_MouseDoubleClick(null, null);
                        break;
                    case 2:
                        dgHijos_MouseDoubleClick(null, null);
                        break;
                    case 3:
                        dgHermanos_MouseDoubleClick(null, null);
                        break;
                    case 4:
                        dgExperiencia_MouseDoubleClick(null, null);
                        break;
                    case 5:
                        dgReferenciasPersonales_MouseDoubleClick(null, null);
                        break;
                    default:
                        break;
                }
            }
        }

        private void guardaGrid(int grid)
        {
            string SQLBase = "";
            string SQLFinal = "";
            try
            {
                switch (grid)
                {
                    case 1:
                        SQLBase = "exec SPUpdDatosFamiliaresEntreCosea '{0}','{1}','{2}',{3},'{4}','{5}','{6}',{7}";
                        SQLFinal = string.Format(SQLBase, _idCandidato, DateTime.Now.ToString("yyyy-MM-dd 00:00:00"),
                            _datosFamiliares.Nombre,_datosFamiliares.Edad,_datosFamiliares.Ocupacion,
                            _datosFamiliares.Vive_Finado,_datosFamiliares.Enfermedades,_renglon );
                        break;
                    case 2:
                        SQLBase = "exec SPUpdHijosEntreCosea '{0}','{1}',{2},{3}";
                        SQLFinal = string.Format(SQLBase, _idCandidato, _hijos.nombre, _hijos.edad, _renglon);
                        break;
                    case 3:
                        SQLBase = "exec SPUpdHermanosEntreCosea '{0}','{1}',{2},'{3}','{4}',{5}";
                        SQLFinal = string.Format(SQLBase, _idCandidato, _hermanos.Nombre, _hermanos.Edad,
                            _hermanos.Profesion, _hermanos.Estado_Civil, _renglon);
                        break;
                    case 4:
                        SQLBase = "exec SPUpdExperienciaLaboralEntreCosea '{0}','{1}','{2}','{3}','{4}','{5}',{6},'{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}',{15}";
                        SQLFinal = string.Format(SQLBase, _idCandidato, _experiencia.Giro, _experiencia.Telefono, _experiencia.Fecha_Ingreso.ToString("yyyy-MM-dd 00:00:00"),
                            _experiencia.Fecha_Separacion.ToString("yyyy-MM-dd 00:00:00"), _experiencia.Puesto, _experiencia.Sueldo, _experiencia.Prestaciones,
                            _experiencia.Actividades, _experiencia.Logros, _experiencia.Relacion_Jefe, _experiencia.Motivo_Salida, _experiencia.Nombre_Jefe,
                            _experiencia.Puesto_Jefe, _experiencia.Telefono_Jefe, _renglon);
                        break;
                    case 5:
                        SQLBase = "exec SPUpdReferenciasEntreCosea '{0}','{1}','{2}','{3}','{4}',{5}";
                        SQLFinal = string.Format(SQLBase,_idCandidato, _referencia.Nombre, _referencia.Ocupacion, _referencia.Telefono, _referencia.Anos, _renglon);
                        break;
                    default:
                        break;
                }               

                ejecutaStore(SQLFinal);
                CargaGrids();
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }

        private void ejecutaStore(string SQL)
        {
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            try
            {
                bd.bdConecta();

                int iEjecuta = 0;
                iEjecuta = bd.bdEjecuta(SQL);

            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
            finally
            {
                bd.bdCierra();
            }
        }

        private void bMas1_Click(object sender, RoutedEventArgs e)
        {
            _accion = 0;
            agregar(int.Parse (((Button)sender).Tag.ToString()));
        }

        private void bMenos1_Click(object sender, RoutedEventArgs e)
        {
            _accion = 1;
            menos(int.Parse(((Button)sender).Tag.ToString()));
        }

        private void bUpd1_Click(object sender, RoutedEventArgs e)
        {
            _accion = 2;
            upd(int.Parse(((Button)sender).Tag.ToString()));
        }

        private int calculaRenglonSiguiente(string SQL)
        {
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));            
            DataTable dt;
            
            int renglon = 0;
            try
            {
                bd.bdConecta();
                dt = bd.dataSetConsulta(SQL, "tabla").Tables[0];
                if (dt.Rows.Count > 0)
                {
                    if (dt.Rows[0][0] != DBNull.Value)
                        renglon = int.Parse(dt.Rows[0][0].ToString());
                    else
                        renglon = 1;
                }

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                bd.bdCierra();
            }
            return renglon;
        }

        private void limpiaCajas()
        {
            cmbEstadoCivil.Text = string.Empty;
            ndHijos.Value = 0;
            txtValoresFamiliares.Document.Blocks.Clear();
            txtDescripcionSiMismo.Document.Blocks.Clear();
            txtDefectos.Document.Blocks.Clear();
            cboPrimaria.Text = string.Empty;
            cboSecundaria.Text = string.Empty;
            cboTecnico.Text = string.Empty;
            cboComercial.Text = string.Empty;
            cboTitulado.Text = string.Empty;
            cboPrepa.Text = string.Empty;
            cboProfesional.Text = string.Empty;
            cboMaestria.Text = string.Empty;
            cboOtros.Text = string.Empty;
            cboPasante.Text = string.Empty;
            cboTrunco.Text = string.Empty;
            cboEstudia_.Text = string.Empty;
            txtCarrera.Text = string.Empty;
            txtEscuela.Text = string.Empty;
            txtQueEstudia.Text = string.Empty;
            txtQueEscuela.Text = string.Empty;
            txtHorario.Text = string.Empty;
            txtIdiomas.Text = string.Empty;
            txtMaquinas.Text = string.Empty;
            txtHabilidadesCompu.Document.Blocks.Clear();
            txtUltimosCursos.Document.Blocks.Clear();
            cboHaTrabajadoPuesto.Text = string.Empty;
            txtExperienciaPuestoSolicitado.Text = string.Empty;
            cboTrabajadoEmpresaSimilar.Text = string.Empty;
            cboImss.Text = string.Empty;
            txtRFC.Text = string.Empty;
            txtCurp.Text = string.Empty;
            cboLicencia.Text = string.Empty;
            txtTipo.Text = string.Empty;
            cboCartilla.Text = string.Empty;
            txtCartilla.Text = string.Empty;
            cboCasaPropia.Text = string.Empty;
            cboCasaPadres.Text = string.Empty;
            cboCasaPrestada.Text = string.Empty;
            cboViveCon.Text = string.Empty;
            ndTiempoViviendo.Value = 0;
            txtOtroIngreso.Text = string.Empty;
            cboCasaRentada.Text = string.Empty;
            txtRentaMensual.Text = string.Empty;
            ndDependientes.Value = 0;
            txtGastosMensuales.Text = string.Empty;
            txtAportacionHogar.Text = string.Empty;
            cboAutomovilPropio.Text = string.Empty;
            txtModelo.Text = string.Empty;
            cboCredito.Text = string.Empty;
            txtDeudas.Text = string.Empty;
            txtAbonos.Text = string.Empty;
            cboEdoSalud.Text = string.Empty;
            cboEnfermedadCronica.Text = string.Empty;
            txtCualEnfermedad.Text = string.Empty;
            cboEnfermedadesImpidaTrabajar.Text = string.Empty;
            txtCualEnfermedad1.Text = string.Empty;
            cboEnfermedadContagiosa.Text = string.Empty;
            txtCualEnfermedad2.Text = string.Empty;
            ndIncapacidades.Value = 0;
            txtMotivoIncapacidad.Text = string.Empty;
            cboConsumidoDrogas.Text = string.Empty;            
            cboTipoDroga.Text = string.Empty;
            cboFuma.Text = string.Empty;
            cboToma.Text = string.Empty;
            chkMarihuana.IsChecked = false;
            chkCocaina.IsChecked = false;
            chkOtra.IsChecked = false;
            txtCualDroga.Text = string.Empty;
            txtMetaCorto.Document.Blocks.Clear();
            txtMedianoPlazo.Document.Blocks.Clear();
            txtLargoPlazo.Document.Blocks.Clear();
            cboPreguntaFinal.Text = string.Empty;
            txtComentariosFinales.Document.Blocks.Clear();
            txtSalarioDeseado.Text = string.Empty;
            txtDisponibilidadHorario.Text = string.Empty;
            cboDispViajar.Text = string.Empty;

        }

        private void ColocaDatos(EntrevistaCosea ec)
        {
            try
            {
                _idCandidato = ec.idcandidato;
                _idEntreCosea = ec.identrecosea;
                //_idUsuario = ec.idusuario;
                cmbEstadoCivil.Text = ec.estadocivil;
                ndHijos.Value =  decimal.Parse(ec.hijos) ;                 

                FlowDocument mcFlowDoc = new FlowDocument();
                Paragraph para = new Paragraph();
                para.Inlines.Add(new Run(ec.valores));
                mcFlowDoc.Blocks.Add(para);
                txtValoresFamiliares.Document = mcFlowDoc;

                
                mcFlowDoc = new FlowDocument();
                para = new Paragraph();
                para.Inlines.Add(new Run(ec.descripcion));
                mcFlowDoc.Blocks.Add(para);
                txtDescripcionSiMismo.Document = mcFlowDoc;

                mcFlowDoc = new FlowDocument();
                para = new Paragraph();
                para.Inlines.Add(new Run(ec.defectos));
                mcFlowDoc.Blocks.Add(para);
                txtDefectos.Document = mcFlowDoc;

                cboPrimaria.Text = ec.primaria;
                cboSecundaria.Text = ec.secundaria;
                cboTecnico.Text = ec.tecnico;
                cboComercial.Text = ec.comercial;
                cboTitulado.Text = ec.titulado;
                cboPrepa.Text = ec.preparatoria;
                cboProfesional.Text = ec.profesional;
                cboMaestria.Text = ec.maestria;
                cboOtros.Text = ec.otros;
                cboPasante.Text = ec.pasante;
                cboTrunco.Text = ec.trunco;
                txtCarrera.Text = ec.carrera;
                txtEscuela.Text = ec.nombreescuela;
                cboEstudia_.Text = ec.estudia;
                txtQueEstudia.Text = ec.queestudia;
                txtHorario.Text = ec.horario;
                txtQueEscuela.Text = ec.escuela;
                txtIdiomas.Text = ec.idioma;
                txtMaquinas.Text = ec.maquinasoficina;

                mcFlowDoc = new FlowDocument();
                para = new Paragraph();
                para.Inlines.Add(new Run(ec.habilidadescomputacionales));
                mcFlowDoc.Blocks.Add(para);
                txtHabilidadesCompu.Document = mcFlowDoc;

                mcFlowDoc = new FlowDocument();
                para = new Paragraph();
                para.Inlines.Add(new Run(ec.cursostomados));
                mcFlowDoc.Blocks.Add(para);
                txtUltimosCursos.Document = mcFlowDoc;


                cboHaTrabajadoPuesto.Text = ec.yatrabajoenpuesto;
                txtExperienciaPuestoSolicitado.Text = ec.experiencia;
                cboTrabajadoEmpresaSimilar.Text = ec.empresasimilar;
                cboImss.Text = ec.afiliadoimss;
                txtRFC.Text = ec.rfc;
                txtCurp.Text = ec.curp;
                cboLicencia.Text = ec.licencia;
                txtTipo.Text = ec.tipolicencia;
                cboCartilla.Text = ec.cartilla;
                txtCartilla.Text = ec.cartillanumero;
                cboCasaPropia.Text = ec.casapropia;
                cboCasaRentada.Text = ec.casarentada;
                cboCasaPrestada.Text = ec.casaprestada;
                cboCasaPadres.Text = ec.casapadres;
                ndTiempoViviendo.Value = decimal.Parse (ec.tiempoviviendo);
                cboViveCon.Text = ec.vivecon;
                txtOtroIngreso.Text = ec.otroingreso;
                ndDependientes.Value = decimal.Parse (ec.personasdependientes);
                txtGastosMensuales.Text = ec.gastosmensuales;
                txtAportacionHogar.Text = ec.aportacionhogar;
                cboAutomovilPropio.Text = ec.automovilpropio;
                txtModelo.Text = ec.modeloauto;
                cboCredito.Text = ec.tienecredito;
                txtDeudas.Text = ec.deudas;
                txtAbonos.Text = ec.abonomensual;
                cboEdoSalud.Text = ec.salud;
                cboEnfermedadCronica.Text = ec.enfermedadcronica;
                txtCualEnfermedad.Text = ec.cualcronica;
                cboEnfermedadesImpidaTrabajar.Text = ec.enfermedadqueimpida;
                txtCualEnfermedad1.Text = ec.cualimpida;
                cboEnfermedadContagiosa.Text = ec.enfermedadcontagiosa;
                txtCualEnfermedad2.Text = ec.cualcontagiosa;
                ndIncapacidades.Value = decimal.Parse(ec.cuantasincapacidades);
                txtMotivoIncapacidad.Text = ec.motivoincapacidad;
                cboConsumidoDrogas.Text = ec.consumirdroga;
                cboTipoDroga.Text = ec.tipodroga;
                txtCualDroga.Text = ec.cualotradroga;
                cboFuma.Text = ec.fuma;
                cboToma.Text = ec.tomaalcohol;
                
                mcFlowDoc = new FlowDocument();
                para = new Paragraph();
                para.Inlines.Add(new Run(ec.metacorto));
                mcFlowDoc.Blocks.Add(para);
                txtMetaCorto.Document = mcFlowDoc;

                mcFlowDoc = new FlowDocument();
                para = new Paragraph();
                para.Inlines.Add(new Run(ec.metamediando));
                mcFlowDoc.Blocks.Add(para);
                txtMedianoPlazo.Document = mcFlowDoc;

                mcFlowDoc = new FlowDocument();
                para = new Paragraph();
                para.Inlines.Add(new Run(ec.metalargo));
                mcFlowDoc.Blocks.Add(para);
                txtLargoPlazo.Document = mcFlowDoc;

                cboPreguntaFinal.Text = ec.examenesdroga;

                mcFlowDoc = new FlowDocument();
                para = new Paragraph();
                para.Inlines.Add(new Run(ec.comentarios));
                mcFlowDoc.Blocks.Add(para);
                txtComentariosFinales.Document = mcFlowDoc;
                txtSalarioDeseado.Text = ec.salariodeseado;
                txtDisponibilidadHorario.Text  = ec.disponibilidadhorario;
                cboDispViajar.Text = ec.disponibilidadviajar;
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
        }


        private EntrevistaCosea RecuperaDatos()
        {
            EntrevistaCosea ec = new EntrevistaCosea();
            try
            {                
                ec.idcandidato = _idCandidato;

                if(_modoEntrevista == true )
                    ec.identrecosea = _idCandidato;
                else
                    ec.identrecosea = _idEntreCosea;

                ec.idusuario = _idUsuario;                
                ec.estadocivil = cmbEstadoCivil.Text;

                if (ndHijos.Value.ToString() != "0")
                    ec.hijos = ndHijos.Value.ToString();
                else
                    ec.hijos = "0";

                ec.valores = Utilerias.ConvertRichTextBoxContentsToString(txtValoresFamiliares);
                ec.descripcion = Utilerias.ConvertRichTextBoxContentsToString(txtDescripcionSiMismo);
                ec.defectos = Utilerias.ConvertRichTextBoxContentsToString(txtDefectos);
                ec.primaria = cboPrimaria.Text;
                ec.secundaria = cboSecundaria.Text;
                ec.tecnico = cboTecnico.Text;
                ec.comercial = cboComercial.Text;
                ec.titulado = cboTitulado.Text;
                ec.preparatoria = cboPrepa.Text;
                ec.profesional = cboProfesional.Text;
                ec.maestria = cboMaestria.Text;
                ec.otros = cboOtros.Text;
                ec.pasante = cboPasante.Text;
                ec.trunco = cboTrunco.Text;
                ec.carrera = txtCarrera.Text;
                ec.nombreescuela = txtEscuela.Text;
                ec.estudia = cboEstudia_.Text;
                ec.queestudia = txtQueEstudia.Text;
                ec.horario = txtHorario.Text;
                ec.escuela = txtQueEscuela.Text;
                ec.idioma = txtIdiomas.Text;
                ec.maquinasoficina = txtMaquinas.Text;
                ec.habilidadescomputacionales = Utilerias.ConvertRichTextBoxContentsToString(txtHabilidadesCompu);
                ec.cursostomados = Utilerias.ConvertRichTextBoxContentsToString(txtUltimosCursos);
                ec.yatrabajoenpuesto = cboHaTrabajadoPuesto.Text;
                ec.experiencia = txtExperienciaPuestoSolicitado.Text;
                ec.empresasimilar = cboTrabajadoEmpresaSimilar.Text;
                ec.afiliadoimss = cboImss.Text;
                ec.rfc = txtRFC.Text;
                ec.curp = txtCurp.Text;
                ec.licencia = cboLicencia.Text;
                ec.tipolicencia = txtTipo.Text;
                ec.cartilla = cboCartilla.Text;
                ec.cartillanumero = txtCartilla.Text;
                ec.casapropia = cboCasaPropia.Text;
                ec.casarentada = cboCasaRentada.Text;
                ec.casaprestada = cboCasaPrestada.Text;
                ec.casapadres = cboCasaPadres.Text;

                if (ndTiempoViviendo.Value.ToString() != "0")
                    ec.tiempoviviendo = ndTiempoViviendo.Value.ToString();
                else
                    ec.tiempoviviendo = "0";

                ec.vivecon = cboViveCon.Text;

                if (Utilerias.IsNumeric(txtOtroIngreso.Text) == true)
                    ec.otroingreso = txtOtroIngreso.Text;
                else
                    ec.otroingreso = "0";

                if (ndDependientes.Value.ToString() != "0")
                    ec.personasdependientes = ndDependientes.Value.ToString();
                else
                    ec.personasdependientes = "0";

                if (Utilerias.IsNumeric(txtGastosMensuales.Text) == true)
                    ec.gastosmensuales = txtGastosMensuales.Text;
                else
                    ec.gastosmensuales = "0";

                if (Utilerias.IsNumeric(txtAportacionHogar.Text) == true)
                    ec.aportacionhogar = txtAportacionHogar.Text;
                else
                    ec.aportacionhogar = "0";

                ec.automovilpropio = cboAutomovilPropio.Text;
                ec.modeloauto = txtModelo.Text;
                ec.tienecredito = cboCredito.Text;

                if (Utilerias.IsNumeric(txtDeudas.Text) == true)
                    ec.deudas = txtDeudas.Text;
                else
                    ec.deudas = "0";

                if (Utilerias.IsNumeric(txtAbonos.Text) == true)
                    ec.abonomensual = txtAbonos.Text;
                else
                    ec.abonomensual = "0";

                ec.salud = cboEdoSalud.Text;
                ec.enfermedadcronica = cboEnfermedadCronica.Text;
                ec.cualcronica = txtCualEnfermedad.Text;
                ec.enfermedadqueimpida = cboEnfermedadesImpidaTrabajar.Text;
                ec.cualimpida = txtCualEnfermedad1.Text;
                ec.enfermedadcontagiosa = cboEnfermedadContagiosa.Text;
                ec.cualcontagiosa = txtCualEnfermedad2.Text;

                if (ndIncapacidades.Value.ToString() != "0")
                    ec.cuantasincapacidades = ndIncapacidades.Value.ToString();
                else
                    ec.cuantasincapacidades = "0";

                ec.motivoincapacidad = txtMotivoIncapacidad.Text;
                ec.consumirdroga = cboConsumidoDrogas.Text;
                ec.tipodroga = cboTipoDroga.Text;
                ec.cualotradroga = txtCualDroga.Text;
                ec.fuma = cboFuma.Text;
                ec.tomaalcohol = cboToma.Text;
                ec.metacorto = Utilerias.ConvertRichTextBoxContentsToString(txtMetaCorto);
                ec.metamediando = Utilerias.ConvertRichTextBoxContentsToString(txtMedianoPlazo);
                ec.metalargo = Utilerias.ConvertRichTextBoxContentsToString(txtLargoPlazo);
                ec.examenesdroga = cboPreguntaFinal.Text;
                ec.comentarios = Utilerias.ConvertRichTextBoxContentsToString(txtComentariosFinales);

                if (Utilerias.IsNumeric(txtSalarioDeseado.Text) == true)
                    ec.salariodeseado = txtSalarioDeseado.Text;
                else
                    ec.salariodeseado = "0";
                
                ec.disponibilidadhorario= txtDisponibilidadHorario.Text;
                ec.disponibilidadviajar= cboDispViajar.Text;

            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }

            return ec;
        }

        private void nuevaEntrevista()
        {
            limpiaCajas();
            _modoEntrevista = true;
            lblModo.Content = "Modo: [ Nuevo ]";
            cmbEstadoCivil.Focus();
        }

        private void guardaEntrevista()
        {
            string sp = "";
            string parametros = "";
            parametros = enlazaStringStore(RecuperaDatos());
            if (_modoEntrevista == true)            
                sp = "exec SPInsEntrevistaCosea " + parametros;            
            else
                sp = "exec SPUpdEntrevistaCosea " + parametros;

            try
            {
                ejecutaStore(sp);
                _modoEntrevista = false;
                lblModo.Content = "Modo: [ Actualización ]";
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
            



        }

        private string enlazaStringStore(EntrevistaCosea ec)
        {
            string resultado = "";

            try
            {
                string query = "";

                string sbase = " '{0}','{1}','{2}','{3}',{4},'{5}',";
                sbase += " '{6}','{7}','{8}','{9}','{10}','{11}',";
                sbase += " '{12}','{13}','{14}','{15}','{16}','{17}',";
                sbase += " '{18}','{19}','{20}','{21}','{22}','{23}',";
                sbase += " '{24}','{25}','{26}','{27}','{28}','{29}',";
                sbase += " '{30}','{31}','{32}','{33}','{34}','{35}',";
                sbase += " '{36}','{37}','{38}','{39}','{40}','{41}',";
                sbase += " {42},'{43}',{44},{45},{46},{47},";
                sbase += " '{48}','{49}','{50}',{51},{52},'{53}',";
                sbase += " '{54}','{55}','{56}','{57}','{58}','{59}',";
                sbase += " {60},'{61}','{62}','{63}','{64}','{65}',";
                sbase += " '{66}','{67}','{68}','{69}','{70}','{71}','{72}',{73},'{74}','{75}'";

                query = string.Format(sbase,
                    ec.idcandidato,ec.identrecosea,ec.idusuario,ec.estadocivil,ec.hijos,ec.valores,
                    ec.descripcion, ec.defectos, ec.primaria, ec.secundaria, ec.tecnico, ec.comercial,
                    ec.titulado, ec.preparatoria, ec.profesional, ec.maestria, ec.otros, ec.pasante,
                    ec.trunco, ec.carrera, ec.nombreescuela, ec.estudia, ec.queestudia, ec.horario,
                    ec.escuela, ec.idioma, ec.maquinasoficina, ec.habilidadescomputacionales, ec.cursostomados, ec.yatrabajoenpuesto,
                    ec.experiencia, ec.empresasimilar, ec.afiliadoimss, ec.rfc, ec.curp, ec.licencia,
                    ec.tipolicencia, ec.cartilla, ec.cartillanumero, ec.casapropia, ec.casarentada, ec.casaprestada,
                    ec.tiempoviviendo, ec.vivecon, ec.otroingreso, ec.personasdependientes, ec.gastosmensuales, ec.aportacionhogar,
                    ec.automovilpropio, ec.modeloauto, ec.tienecredito, ec.deudas, ec.abonomensual, ec.salud,
                    ec.enfermedadcronica, ec.cualcronica, ec.enfermedadqueimpida, ec.cualimpida, ec.enfermedadcontagiosa, ec.cualcontagiosa,
                    ec.cuantasincapacidades, ec.motivoincapacidad, ec.consumirdroga, ec.tipodroga, ec.fuma, ec.tomaalcohol,
                    ec.metacorto, ec.metamediando, ec.metalargo, ec.examenesdroga, ec.comentarios, ec.casapadres, ec.cualotradroga,
                    ec.salariodeseado,ec.disponibilidadhorario,ec.disponibilidadviajar);

                resultado = query;

            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }

            return resultado;
        }

        private EntrevistaCosea ObtenEntrevista()
        {
            EntrevistaCosea ec = new EntrevistaCosea();
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            string strSQL = "";
            string strSQLFinal = "";
            try
            {
                strSQL = "SELECT  idcandidato ";
                strSQL += "      , identrecosea ";
                strSQL += "      , idusuario ";
                strSQL += "      , fecha ";
                strSQL += "      , estadocivil ";
                strSQL += "      , hijos ";
                strSQL += "      , valores ";
                strSQL += "      , descripcion ";
                strSQL += "      , defectos ";
                strSQL += "      , primaria ";
                strSQL += "      , secundaria ";
                strSQL += "      , tecnico ";
                strSQL += "      , comercial ";
                strSQL += "      , titulado ";
                strSQL += "      , preparatoria ";
                strSQL += "      , profesional ";
                strSQL += "      , maestria ";
                strSQL += "      , otros ";
                strSQL += "      , pasante ";
                strSQL += "      , trunco ";
                strSQL += "      , carrera ";
                strSQL += "      , nombreescuela ";
                strSQL += "      , estudia ";
                strSQL += "      , queestudia ";
                strSQL += "      , horario ";
                strSQL += "      , escuela ";
                strSQL += "      , idioma ";
                strSQL += "      , maquinasoficina ";
                strSQL += "      , habilidadescomputacionales ";
                strSQL += "      , cursostomados ";
                strSQL += "      , yatrabajoenpuesto ";
                strSQL += "      , experiencia ";
                strSQL += "      , empresasimilar ";
                strSQL += "      , afiliadoimss ";
                strSQL += "      , rfc ";
                strSQL += "      , curp ";
                strSQL += "      , licencia ";
                strSQL += "      , tipolicencia ";
                strSQL += "      , cartilla ";
                strSQL += "      , cartillanumero ";
                strSQL += "      , casapropia ";
                strSQL += "      , casarentada ";
                strSQL += "      , casaprestada ";
                strSQL += "      , tiempoviviendo ";
                strSQL += "      , vivecon ";
                strSQL += "      , otroingreso ";
                strSQL += "      , personasdependientes ";
                strSQL += "      , gastosmensuales ";
                strSQL += "      , aportacionhogar ";
                strSQL += "      , automovilpropio ";
                strSQL += "      , modeloauto ";
                strSQL += "      , tienecredito ";
                strSQL += "      , deudas ";
                strSQL += "      , abonomensual ";
                strSQL += "      , salud ";
                strSQL += "      , enfermedadcronica ";
                strSQL += "      , cualcronica ";
                strSQL += "      , enfermedadqueimpida ";
                strSQL += "      , cualimpida ";
                strSQL += "      , enfermedadcontagiosa ";
                strSQL += "      , cualcontagiosa ";
                strSQL += "      , cuantasincapacidades ";
                strSQL += "      , motivoincapacidad ";
                strSQL += "      , consumirdroga ";
                strSQL += "      , tipodroga ";
                strSQL += "      , fuma ";
                strSQL += "      , tomaalcohol ";
                strSQL += "      , metacorto ";
                strSQL += "      , metamediando ";
                strSQL += "      , metalargo ";
                strSQL += "      , examenesdroga ";
                strSQL += "      , comentarios ";
                strSQL += "      , casapadres ";
                strSQL += "      , cualotradroga ";
                strSQL += "      , salariodeseado ";
                strSQL += "      , disponibilidadhorario ";
                strSQL += "      , disponibilidadviajar ";
                strSQL += "  FROM EntrevistaCosea ";
                strSQL += "  WHERE idcandidato = '{0}'";

                strSQLFinal = string.Format(strSQL, _idCandidato);

                bd.bdConecta();

                DataSet ds = bd.dataSetConsulta(strSQLFinal, "datos");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    DataRow dr = ds.Tables[0].Rows[0];


                        ec.idcandidato = dr["idcandidato"].ToString();
                        ec.identrecosea = dr["identrecosea"].ToString();
                        ec.idusuario = dr["idusuario"].ToString();
                        ec.fecha = dr["fecha"].ToString();
                        ec.estadocivil = dr["estadocivil"].ToString();
                        ec.hijos = dr["hijos"].ToString();
                        ec.valores = dr["valores"].ToString();
                        ec.descripcion = dr["descripcion"].ToString();
                        ec.defectos = dr["defectos"].ToString();
                        ec.primaria = dr["primaria"].ToString();
                        ec.secundaria = dr["secundaria"].ToString();
                        ec.tecnico = dr["tecnico"].ToString();
                        ec.comercial = dr["comercial"].ToString();
                        ec.titulado = dr["titulado"].ToString();
                        ec.preparatoria = dr["preparatoria"].ToString();
                        ec.profesional = dr["profesional"].ToString();
                        ec.maestria = dr["maestria"].ToString();
                        ec.otros = dr["otros"].ToString();
                        ec.pasante = dr["pasante"].ToString();
                        ec.trunco = dr["trunco"].ToString();
                        ec.carrera = dr["carrera"].ToString();
                        ec.nombreescuela = dr["nombreescuela"].ToString();
                        ec.estudia = dr["estudia"].ToString();
                        ec.queestudia = dr["queestudia"].ToString();
                        ec.horario = dr["horario"].ToString();
                        ec.escuela = dr["escuela"].ToString();
                        ec.idioma = dr["idioma"].ToString();
                        ec.maquinasoficina = dr["maquinasoficina"].ToString();
                        ec.habilidadescomputacionales = dr["habilidadescomputacionales"].ToString();
                        ec.cursostomados = dr["cursostomados"].ToString();
                        ec.yatrabajoenpuesto = dr["yatrabajoenpuesto"].ToString();
                        ec.experiencia = dr["experiencia"].ToString();
                        ec.empresasimilar = dr["empresasimilar"].ToString();
                        ec.afiliadoimss = dr["afiliadoimss"].ToString();
                        ec.rfc = dr["rfc"].ToString();
                        ec.curp = dr["curp"].ToString();
                        ec.licencia = dr["licencia"].ToString();
                        ec.tipolicencia = dr["tipolicencia"].ToString();
                        ec.cartilla = dr["cartilla"].ToString();
                        ec.cartillanumero = dr["cartillanumero"].ToString();
                        ec.casapropia = dr["casapropia"].ToString();
                        ec.casarentada = dr["casarentada"].ToString();
                        ec.casaprestada = dr["casaprestada"].ToString();
                        ec.tiempoviviendo = dr["tiempoviviendo"].ToString();
                        ec.vivecon = dr["vivecon"].ToString();
                        ec.otroingreso = dr["otroingreso"].ToString();
                        ec.personasdependientes = dr["personasdependientes"].ToString();
                        ec.gastosmensuales = dr["gastosmensuales"].ToString();
                        ec.aportacionhogar = dr["aportacionhogar"].ToString();
                        ec.automovilpropio = dr["automovilpropio"].ToString();
                        ec.modeloauto = dr["modeloauto"].ToString();
                        ec.tienecredito = dr["tienecredito"].ToString();
                        ec.deudas = dr["deudas"].ToString();
                        ec.abonomensual = dr["abonomensual"].ToString();
                        ec.salud = dr["salud"].ToString();
                        ec.enfermedadcronica = dr["enfermedadcronica"].ToString();
                        ec.cualcronica = dr["cualcronica"].ToString();
                        ec.enfermedadqueimpida = dr["enfermedadqueimpida"].ToString();
                        ec.cualimpida = dr["cualimpida"].ToString();
                        ec.enfermedadcontagiosa = dr["enfermedadcontagiosa"].ToString();
                        ec.cualcontagiosa = dr["cualcontagiosa"].ToString();
                        ec.cuantasincapacidades = dr["cuantasincapacidades"].ToString();
                        ec.motivoincapacidad = dr["motivoincapacidad"].ToString();
                        ec.consumirdroga = dr["consumirdroga"].ToString();
                        ec.tipodroga = dr["tipodroga"].ToString();
                        ec.fuma = dr["fuma"].ToString();
                        ec.tomaalcohol = dr["tomaalcohol"].ToString();
                        ec.metacorto = dr["metacorto"].ToString();
                        ec.metamediando = dr["metamediando"].ToString();
                        ec.metalargo = dr["metalargo"].ToString();
                        ec.examenesdroga = dr["examenesdroga"].ToString();
                        ec.comentarios = dr["comentarios"].ToString();
                        ec.casapadres = dr["casapadres"].ToString();
                        ec.cualotradroga = dr["cualotradroga"].ToString();

                        ec.salariodeseado = dr["salariodeseado"].ToString();
                        ec.disponibilidadhorario = dr["disponibilidadhorario"].ToString();
                        ec.disponibilidadviajar = dr["disponibilidadviajar"].ToString();

                }
                else
                {
                    ec.identrecosea = "N/A";
                }


            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }

            finally
            {
                bd.bdCierra();
            }
            return ec;
        }

        private void btnNuevo_Click(object sender, System.Windows.RoutedEventArgs e)
        {

            if(!_modoEntrevista )
            {
                MessageBoxResult result = MessageBox.Show("¿Deseas hacer una nueva entrevista para este candidato?", 
                    "Reclutamiento Cosea", MessageBoxButton.YesNo,MessageBoxImage.Question);
                if (result == MessageBoxResult.Yes)
                {
                    string sql = string.Format("delete from EntrevistaCosea where idcandidato = '{0}'", _idCandidato);
                    ejecutaStore(sql);
                    nuevaEntrevista();
                }
                else 
                    nuevaEntrevista();                                    
            }
            else             
                nuevaEntrevista();            
        }

        private void btnGuardar_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            guardaEntrevista();
            lblMensaje.Content = "Se guardo a las: " + DateTime.Now.ToShortTimeString();
            //MessageBox.Show("Registro actualizado", "Reclutamiento Cosea", MessageBoxButton.OK, MessageBoxImage.Information);
        }

        private void btnSalir_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            SeCerroVentana(true);
        }

        #endregion

    }
}